#ifndef METHODMANAGER_H
#define METHODMANAGER_H

#include <QString>
#include <QDateTime>
#include <QJsonObject>
#include <QJsonArray>
#include <QFile>
#include <QVector>

struct Method {
    QString methodName;//方法名称
    QDateTime creationTime;//生成时间
    QString createdBy;//生成用户
    int lightIntensity;//光强
    int integrationTime;//积分时间
    int integrationCount;//积分次数
    QVector<int> displacement;//位移
};

class MethodManager {
public:
    MethodManager();
    ~MethodManager();

    bool createMethod(const Method& item);
    Method getMethod(const QString& methodName);
    QVector<Method> getAllMethod();
    QVector<Method> getMethodByUser(const QString& username);
    bool deleteMethod(const QString& methodName);
    bool checkMethodExists(const QString& methodName);

private:
    void createInitialMethodFile();
    QString getMethodFilePath() const;
    void saveMethodFile(const QJsonArray& jsonArray);
    QJsonArray loadMethodFile() const;
};

#endif // METHODMANAGER_H
